package com.yuda.afterexamscore.utils.Abstract;

import com.yuda.afterexamscore.utils.Helper.BytesHelper;

import java.net.InetAddress;

public abstract class AbstractUUIDGenerator {
    private static final int IP;

    static {
        int ipadd;

        try {
            ipadd = BytesHelper.toInt(InetAddress.getLocalHost().getAddress());

        } catch (Exception e) {
            ipadd = 0;

        }

        IP = ipadd;

    }

    private static short counter = (short) 0;

    private static final int JVM = (int) (System.currentTimeMillis() >>> 8);

    public AbstractUUIDGenerator() {
    }

    protected static int getJVM() {
        return JVM;

    }

    protected static short getCount() {
        synchronized (AbstractUUIDGenerator.class) {
            if (counter < 0) {
                counter = 0;

            }

            return counter++;

        }

    }

    protected static int getIP() {
        return IP;

    }

    protected static short getHiTime() {
        return (short) (System.currentTimeMillis() >>> 32);

    }

    protected static int getLoTime() {
        return (int) System.currentTimeMillis();

    }
}

